The use of the Internet for electronic commerce and for information retrieval has rapidly proliferated in today's modern world. Hundreds of Internet sites and Web portals are constantly accessed by millions of users for obtaining information, news, entertainment, and the like, via the World Wide Web. Many aspects of everyday life are becoming electronically information based, and the access, control, and the use of such electronic information, through the use of various types of electronic devices, is never far from hand. For example, a desktop computer allows access to banking functions (e.g., checking, bill paying, etc.), shopping (e.g., groceries, clothing, etc.), the weather, and virtually any other need of an individual.
As described above, the emergence of the Internet is changing many aspects of modern life. However, no area is undergoing as rapid and significant changes as the manner in which businesses operate. Today, large and small companies are using the Web to communicate with their partners, to connect with their back-end systems, and to perform electronic commerce transactions. Users will soon witness the evolution of today's e-business and e-commerce into e-services. Examples of e-services are stock trading, customized newspapers, real-time traffic report, or itinerary planning.
The e-service environment creates the business opportunity for providing value-added services, which are delivered by composing existing e-services, possibly offered by different providers. For instance, an “eMove” composite service could support customers for relocations, by composing truck rental, furniture shipments, address change, and airline reservation services in a flexible way to meet various needs for each relocation transaction. Hence, the Web is rapidly becoming the platform through which many companies deliver e-services to businesses and individual customers. E-Services are typically delivered in their primitive forms, called basic services.
Prior art traditional approaches to service composition allow the definition of a composite service as a business process, specified by a graph of nodes (corresponding to activities or services to be executed). In such models, new services are started as other services complete, according to the control flow specifications. However, many processes need to synchronize the activations of their nodes with the occurrence of specific events. For instance, in a candidate interview process, suitable actions must be performed when the candidate decides to withdraw his/her job application: reservations for interview rooms need to be canceled, e-mails need to be sent to the members of the interview team, and the withdrawal need to be logged in the corporate Human Resource database. The withdrawal of a job application is asynchronous with respect to the activities in the candidate interview process, that is, it does not necessarily occur in correspondence to the completion of a process activity, but can instead occur at any time during process execution. To specify this kind of behaviors, a composition model should provide primitives that enable the definition of paths in the process that are activated as a given event occurs.
In addition, events can also provide for dynamic data exchange between composite services and external applications. For instance, consider a car rental process. This process needs to manage situations in which an accident occurs to the rented car. If the process model and system can manage events, then the process designer can specify suitable actions to be taken as a car accident event is detected. In addition, this event may carry some parameters, such as the car license plate number or the time needed for repair. These data can be made accessible to the process instance in order to react appropriately to the situation.
Depending on the type of events supported by the process model, the specifications of many other behaviors become possible: for instance, events could be used to synchronize the execution of activities executed in two (or more) different process instances, to suspend the execution of a process until a given date and time, to define processes whose instances are created periodically or as a given event occurs, to detect and react to manipulations of a given process variables, to handle exceptional situations such as the inability to invoke a service, and many others.
There currently exists no comprehensive model or architecture that enables the delivery of such value-added services. There exists no solution that supports the specification, deployment, and management of composite e-services, i.e., of e-services that are carried out by invoking several other basic or composite services. There exists no solution that provides the service developer with a simple, easy to use, yet powerful mechanism for defining services. The present invention provides novel solution to the above requirements.